#define _CRT_SECURE_NO_WARNINGS 1

class Solution {
public:
    bool checkPossibility(vector<int>& nums)
    {
        int change = 0;
        for (size_t i = 0; i < nums.size() - 1; ++i)
        {
            if (nums[i] > nums[i + 1])
            {
                ++change;
                if (change > 1)
                {
                    return false;
                }

                if (i > 0 && nums[i + 1] < nums[i - 1])
                {
                    nums[i + 1] = nums[i];
                }
            }
        }

        return true;
    }
};